<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!--
    Ignite Spring configuration file to startup grid cache.

    When starting a standalone Ignite node, you need to execute the following command:
    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml

    When starting Ignite from Java IDE, pass path to this file into Ignition:
    Ignition.start("path-to-this-file/example-benchmark.xml");
-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--
        Optional description.
    -->
    <description>
        Spring file for grid configuration with benchmark.
    </description>

    <!--
        Configuration below demonstrates how to setup caches within grid nodes.
    -->
    <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
        <property name="peerClassLoadingEnabled" value="false"/>

        <!-- Set to local host address just for examples. -->
        <property name="localHost" value="127.0.0.1"/>

        <property name="connectorConfiguration">
            <bean class="org.apache.ignite.configuration.ConnectorConfiguration">
                <property name="port" value="11213"/>
            </bean>
        </property>

        <!--<property name="peerClassLoadingEnabled" value="false"/>-->

        <property name="cacheConfiguration">
            <!--
                Specify list of cache configurations here. Any property from
                CacheConfiguration interface can be configured here.
                Note that absolutely all configuration properties are optional.
            -->
            <list>
                <!--
                    Partitioned cache example configuration.
                -->
                <bean class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="partitioned"/>

                    <property name="cacheMode" value="PARTITIONED"/>

                    <property name="swapEnabled" value="false"/>

                    <property name="writeSynchronizationMode" value="FULL_ASYNC"/>

                    <property name="nearConfiguration">
                        <bean class="org.apache.ignite.configuration.NearCacheConfiguration" />
                    </property>

                    <!--
                        This shows how to configure number of backups. The below configuration
                        sets the number of backups to 1 (which is default).
                    -->
                    <property name="backups" value="1"/>
                </bean>

            </list>
        </property>

        <!--
            Uncomment this to provide TCP discovery SPI (predefined addresses).
            Use the addresses list to provide IP addresses of initial nodes in the grid
            (at least one address must be provided).
        -->
        <property name="discoverySpi">
            <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="ipFinder">
                    <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
                        <property name="addresses">
                            <list>
                                <!--
                                    List all IP/port configurations that potentially
                                    can be started first in examples. We are assuming
                                    grid of size 10 or less.
                                -->
                                <value>127.0.0.1:47500</value>
                                <value>127.0.0.1:47501</value>
                                <value>127.0.0.1:47502</value>
                                <value>127.0.0.1:47503</value>
                                <value>127.0.0.1:47504</value>
                                <value>127.0.0.1:47505</value>
                                <value>127.0.0.1:47506</value>
                                <value>127.0.0.1:47507</value>
                                <value>127.0.0.1:47508</value>
                                <value>127.0.0.1:47509</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>
    </bean>
</beans>
